Data is often corrupted during transmission and storage. For example, noise in the transmission and storage channels can change the values of some of the bits in the data. Forward error correction codes have been developed to mitigate such corruption. According to such forward error correction codes, the data is encoded prior to storage or transmission of the data, and decoded after transmission or retrieval of the data. Forward error correction codes have been developed that significantly improve the reliability of the transmission or storage channel.
One such class of forward error correction codes are the iterative codes, where the decoder can decode the data multiple times, achieving better results with each iteration. In general, the number of decoding iterations is varied according to the noise in the channel. That is, as the channel noise increases, the number of decoding iterations is also increased, in order to successfully recover data from the channel. In many storage and transmission channels, the channel noise varies with time. Therefore, iterative decoders are designed to vary the number of decoding iterations accordingly.
The number of decoding iterations is an important consideration in the design of an iterative decoder. As the number of decoding iterations increases, so does the power consumption of the decoder. The decoder must be designed to accommodate the maximum number of decoding iterations. Therefore the decoder must be designed to accommodate the worst-case power and current consumption.
Under worst-case conditions, for example when a hard disk drive head is severely off track, the decoder will run the maximum number of iterations at all times. Peak current is consumed when the maximum number of iterations are running over a long period, and is proportional to maximum number of decoding iterations. High peak current makes the design of power supply and die package very difficult and expensive. Therefore it is desirable to design a system with lower peak power.